"use strict";
const patentManagement = require("../../controllers/patentManagement");

module.exports = function (app, router, opts) {
  // 获取专利列表（分页）
  app.fs.api.logAttr["GET/patentManagement/list"] = {
    name: "获取专利列表",
    visible: false,
  };
  router.get(
    "/patentManagement/list",
    patentManagement.getPatentList
  );
  
  // 编辑/新增专利
  app.fs.api.logAttr["POST/patentManagement/edit/:id"] = {
    name: "编辑/新增专利",
    visible: false,
    content: `
    路径参数：
    - id: 专利ID，新增时传'new'
    
    请求体：
    专利对象，包含所有字段
    
    返回数据：
    {
      "data": 更新后的专利对象,
      "message": "操作结果消息"
    }
    `
  };
  router.post(
    "/patentManagement/edit/:id",
    patentManagement.editPatent
  );
  
  // 删除专利
  app.fs.api.logAttr["DELETE/patentManagement/delete/:id"] = {
    name: "删除专利",
    visible: false,
    content: `
    路径参数：
    - id: 专利ID
    
    返回数据：
    {
      "message": "删除结果消息"
    }
    `
  };
  router.delete(
    "/patentManagement/delete/:id",
    patentManagement.deletePatent
  );
  
  // 导入专利数据
  app.fs.api.logAttr["POST/patentManagement/import"] = {
    name: "导入专利数据",
    visible: false,
    content: `
    请求体：
    - file: Excel文件（multipart/form-data）
    
    返回数据：
    {
      "message": "导入结果消息",
      "success": 成功导入数量,
      "errors": [错误信息数组]
    }
    `
  };
  router.post(
    "/patentManagement/import",
    patentManagement.importPatents
  );
  
  // 变更专利权人
  app.fs.api.logAttr["POST/patentManagement/changePatentee/:id"] = {
    name: "变更专利权人",
    visible: false,
    content: `
    路径参数：
    - id: 专利ID
    
    请求体：
    {
      "changed_patentee": "变更后专利权人（必填）",
      "change_procedure_date": "变更手续合格日期（必填，YYYY-MM-DD格式）"
    }
    
    返回数据：
    {
      "data": 更新后的专利对象,
      "message": "变更结果消息"
    }
    `
  };
  router.post(
    "/patentManagement/changePatentee/:id",
    patentManagement.changePatentee
  );
  
  // 导出专利数据
  app.fs.api.logAttr["GET/patentManagement/export"] = {
    name: "导出专利数据",
    visible: false,
    content: `
    查询参数：
    - keyword: 关键字搜索（可选）
    - patent_type: 专利类型（可选）
    - certificate_issue_date: 下证发文日期（可选，YYYY-MM-DD格式）
    - ids: 指定导出的专利ID列表，多个ID用逗号分隔（可选）
    
    返回数据：
    Excel文件（直接下载）
    `
  };
  router.get(
    "/patentManagement/export",
    patentManagement.exportPatents
  );
  
  // 获取专利导入模板
  app.fs.api.logAttr["GET/patentManagement/template"] = {
    name: "获取专利导入模板",
    visible: false,
    content: `
    返回数据：
    Excel模板文件（直接下载）
    `
  };
  router.get(
    "/patentManagement/template",
    patentManagement.getPatentTemplate
  );
}; 